A minimalistic look at widening operators

نویسنده

  • David Monniaux
چکیده

We consider the problem of formalizing in higher-order logic the familiar notion of widening from abstract interpretation. It turns out that many axioms of widening (e.g. widening sequences are ascending) are not useful for proving correctness. After keeping only useful axioms, we give an equivalent characterization of widening as a lazily constructed wellfounded tree. In type systems supporting dependent products and sums, this tree can be made to reflect the condition of correct termination of the widening sequence. 1 The usual framework We shall first recall the usual definitions of abstract interpretation and widening operators. 1.1 Abstraction and concretization maps Abstract interpretation is a framework for formalizing approximation relationships arising in program semantics and static analysis [8, 9]. Soundness of the abstraction is expressed by the fact that the approximation takes place in a controlled direction. In order to prove that a given set of undesirable states is unreachable, we can compute a superset of the set of reachable states (an over-approximation thereof), in the hope that this set does not intersect the set of undesirable states. If order to prove that we eventually reach a given set of states, we can compute a subset of the set of states that eventually reach them (an under-approximation thereof), in the hope that this set includes the initial states. Most introductory materials on abstract interpretation describe abstraction as a Galois connection between a concrete space S (typically, the powerset P(Σ) of the set of states Σ of the program, or the powerset of the set of finite execution traces Σ of the program) and an abstract space S. For instance, if the program state consists in a program counter location, taken within a finite set P of program locations, and three integer variables, Σ = P ×Z, S = P(P ×Z), the abstract state can be, for instance, a member of S = P → ({⊥} ∪ I), where P is the set of program locations, a → b denotes the set of functions from ainterpretation is a framework for formalizing approximation relationships arising in program semantics and static analysis [8, 9]. Soundness of the abstraction is expressed by the fact that the approximation takes place in a controlled direction. In order to prove that a given set of undesirable states is unreachable, we can compute a superset of the set of reachable states (an over-approximation thereof), in the hope that this set does not intersect the set of undesirable states. If order to prove that we eventually reach a given set of states, we can compute a subset of the set of states that eventually reach them (an under-approximation thereof), in the hope that this set includes the initial states. Most introductory materials on abstract interpretation describe abstraction as a Galois connection between a concrete space S (typically, the powerset P(Σ) of the set of states Σ of the program, or the powerset of the set of finite execution traces Σ of the program) and an abstract space S. For instance, if the program state consists in a program counter location, taken within a finite set P of program locations, and three integer variables, Σ = P ×Z, S = P(P ×Z), the abstract state can be, for instance, a member of S = P → ({⊥} ∪ I), where P is the set of program locations, a → b denotes the set of functions from a VERIMAG is a joint laboratory of CNRS, Université Joseph Fourier and Grenoble-INP.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

The Constraint Database Approach to Software Verification

Based on constraint database techniques, we present a new approach to software verification. This new approach has some similarity to abstract interpretation that uses various widening operators; therefore, we call the new approach l-u widening. We show that our l-u widening leads to a more precise over-approximation of the invariants in a program than comparable previously proposed widening op...

متن کامل

Precise Widening Operators for Convex Polyhedra

Convex polyhedra constitute the most used abstract domain among those capturing numerical relational information. Since the domain of convex polyhedra admits infinite ascending chains, it has to be used in conjunction with appropriate mechanisms for enforcing and accelerating convergence of the fixpoint computation. Widening operators provide a simple and general characterization for such mecha...

متن کامل

Lookahead Widening

We present lookahead widening, a novel technique for using existing widening and narrowing operators to improve the precision of static analysis. This technique is both self-contained and fully-automatic in the sense that it does not rely on separate analyzes or human involvement. We show how to integrate lookahead widening into existing analyzers with minimal effort. Experimental results indic...

متن کامل

Widening and narrowing operators for abstract interpretation

Abstract Interpretation, one of the most applied techniques for semantics based static analysis of software, is based on two main key-concepts: the correspondence between concrete and abstract semantics through Galois connections/insertions, and the feasibility of a fixed point computation of the abstract semantics, through the fast convergence of widening operators. The latter point is crucial...

متن کامل

Stratified Static Analysis Based on Variable Dependencies

In static analysis by abstract interpretation, one often uses widening operators in order to enforce convergence within finite time to an inductive invariant. Certain widening operators, including the classical one over finite polyhedra, exhibit an unintuitive behavior: analyzing the program over a subset of its variables may lead a more precise result than analyzing the original program! In th...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Higher-Order and Symbolic Computation

دوره 22  شماره 

صفحات  -

تاریخ انتشار 2009